A messaging middleware system may receive messages from a first set of computer applications, store the received messages, and fulfill requests from a second set of computer applications to read the stored messages. The messaging middleware system may execute on a computer system. Some of the first set of computer applications may be client applications that are requesting some processing be performed on content they provide in the messages they send to the messaging middleware system. Some of the second set of computer applications may be back-end processing applications that do work on the content in the messages. For example, a back-end application (e.g., one of the second set of computer applications) may store the content in the message in a back-end data store. Alternatively, the back-end application may retrieve an entry requested by a client application from a back-end data store and send the content of the entry in a message sent to the messaging middleware, and the client application may retrieve the message from the messaging middleware that contains the entry.
The messaging middleware decouples the first set of computer applications, which may be referred to as front-end applications, from the second set of computer applications, which may be referred to as back-end applications. The messaging middleware can relieve both the front-end applications and the back-end applications from integrating with each other and of needing to synchronize with each other. The messaging middleware can be designed to persist the messages and do something intelligent in the event of exceptions or of failure of the computer systems on which the messaging middleware executes.